package main

import "fmt"

//数组相关内容
func main() {
	// var a [3]int
	// var b [4]int
	// fmt.Println(a)
	// fmt.Println(b)
	// //数组的初始化
	// //定义时使用初始值列表的方式初始化
	// var cityArray = [4]string{"beijing", "shanghai", "guangzhou", "shenzhen"}
	// fmt.Println(cityArray)
	// fmt.Println(cityArray[2])
	// //编译器推导数组的长度
	// var boolArray = [...]bool{true, false, true, false, false}
	// fmt.Println(boolArray)
	// //使用索引值方式初始化
	// var langArray = [...]string{1: "Golang", 3: "python", 7: "java"}
	// fmt.Println(langArray)
	// fmt.Printf("%T\n", langArray)

	//数组的遍历
	// var cityArray = [4]string{"beijing", "shanghai", "guangzhou", "shenzhen"}
	//for循环遍历
	// for i := 0; i < len(cityArray); i++ {
	// 	fmt.Println(cityArray[i])
	// }
	//for range 遍历
	// for index, value := range cityArray { //索引和值都有 0 beijing  1 shanghai  2 guangzhou	3 shenzhen
	// 	fmt.Println(index, value)
	// }
	// for value := range cityArray { //只有索引 0 1 2 3
	// 	fmt.Println(value)
	// }
	// for _, value := range cityArray { //只有值 beijing shanghai guangzhou shenzhen
	// 	fmt.Println(value)
	// }

	//二维数组
	cityArray := [4][2]string{ //外层可以用[...]表示，内部不行  [...][2]
		{"beijing", "shanghai"},
		{"nanjing", "shenzhen"},
		{"guangzhou", "chongqing"},
		{"suzhou", "hangzhou"},
	}
	fmt.Println(cityArray)
	fmt.Println(cityArray[2][0])
	//二维数组的遍历
	for _, v1 := range cityArray { //打印内部数组
		fmt.Println(v1)
		for _, v2 := range v1 {
			fmt.Println(v2)
		}
	}
	//数组是值类型
}
